package com.cloudeasy.area.repository;

import com.cloudeasy.area.po.AreaAttention;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

public interface AreaAttentionRepository extends MongoRepository<AreaAttention, String> {
    /**
     * 是否存在用户Id和区域Id的记录
     *
     * @param userId 用户Id
     * @param areaId 区域Id
     * @return {@link Boolean}
     */
    Boolean existsByUserIdAndAreaId(String userId, String areaId);

    /**
     * 根据用户Id和区域Id删除记录
     *
     * @param userId 用户Id
     * @param areaId 区域Id
     */
    void deleteByUserIdAndAreaId(String userId, String areaId);

    /**
     * 根据区域Id删除记录
     *
     * @param areaId 区域Id
     */
    void deleteByAreaId(String areaId);

    /**
     * 根据区域Id查找记录
     *
     * @param areaId 区域Id
     * @return {@link List<AreaAttention>}
     */
    List<AreaAttention> findAllByAreaIdIs(String areaId);

    /**
     * 根据区域Id分页查找记录
     *
     * @param areaId   区域Id
     * @param pageable {@link Pageable}
     * @return {@link Page<AreaAttention>}
     */
    Page<AreaAttention> findAllByAreaIdIs(String areaId, Pageable pageable);

    /**
     * 获取用户关注的区域信息
     *
     * @param userId 用户Id
     * @return {@link List<AreaAttention>}
     */
    List<AreaAttention> findAllByUserId(String userId);
}
